exports.base = new Class(/** @lends CaboCity.t.def.Functions.base# */{
	/**
	 * @class Funciones que debe implementar cualquier objeto para definicir acciones de cosas del motor.
	 * @interface
	 * @constructs
	 * */
	initialize: function(){}
	/**
	 * Comprueba que el objeto esté bien-formado.
	 * @public
	 * @return {Boolean}
	 * */
	,isGoodFormed: function(){}
});

exports.build = new Class(/** @lends CaboCity.t.def.Functions.build# */{
	Implements: exports.base
	/**
	 * @class Objeto de definición de acciones para builds
	 * @constructs
	 * @implements CaboCity.t.def.Functions.base
	 * 
	 * @borrows CaboCity.t.def.Functions.base#isGoodFormed as #isGoodFormed
	 * 
	 * @param {CaboCity.t.def.Functions.build#checkParams} [checkParams=CaboCity.t.TrueFunc] Check if the params are corrects.
	 * @param {CaboCity.t.def.Functions.build#checkBuildPosibility} [checkBuildPosibility=CaboCity.t.TrueFunc] Checks for game-client part.
	 * @param {CaboCity.t.def.Functions.build#build} build Execs when "checkBuildPosibility()" function return **true**.
	 * 	After build it execute this.
	 * @param {CaboCity.t.def.Functions.build#notBuild} notBuild Execs when "checkBuildPosibility()" function return **false**.
	 * */
	,initialize: function(checkParams, checkBuildPosibility, build, notBuild){}

	,isGoodFormed: function(){
		//TODO
	}
	
	/**
	 * Check if the params are corrects.
	 * @name CaboCity.t.def.Functions.build#checkParams
	 * @function
	 * 
	 * @param {TODOcommandArguments} argm
	 * @return {Boolean}
	 * */
	/**
	 * Checks for game-client part.
	 * @name CaboCity.t.def.Functions.build#checkBuildPosibility
	 * @function
	 * 
	 * @param {TODOcommandArguments} argm
	 * @return {Boolean}
	 * */
	/**
	 * Execs when "checkBuildPosibility()" function return **true**.
	 * 	After build the build it'll be executed.
	 * @name CaboCity.t.def.Functions.build#build
	 * @function
	 * 
	 * @param {TODOcommandArguments} argm
	 * @return {Boolean}
	 * */
	/**
	 * Execs when "checkBuildPosibility()" function return **false**.
	 * @name CaboCity.t.def.Functions.build#notBuild
	 * @function
	 * 
	 * @param {TODOcommandArguments} argm
	 * @return {Boolean}
	 * */
});

exports.body = new Class(/** @lends CaboCity.t.def.Functions.body# */{
	Implements: CaboCity.t.def.Functions.base
	/**
	 * @class Objeto para definir las acciones para la definición de bodys.
	 * @constructs
	 * @implements CaboCity.t.def.Functions.base
	 * 
	 * @borrows CaboCity.t.def.Functions.base#isGoodFormed as #isGoodFormed
	 * */
	,initialize: function(){
		
	}
});